Wireless signals associated with inter-computer communication can be disrupted based on conditions of the environment in which they propagate. Obstacles in the environment, such as buildings and mountains can cause disruption. Other signals from other devices and noise from machinery and other sources of electromagnetic interference can also cause disruptions. Signal disruption may result in errors being introduced into the data carried by the signal.
Techniques have been proposed for identifying data corruption and even allowing effective communicate despite data corruption. Error control coding (ECC) is one such technique. In error control coding, prior to transmission data is encoded into symbols according to a selected error control code. Each ECC has its own rules of construction that define valid symbols. Only transmitting data in a signal as a limited set of valid symbols allows a receiver of the signal to identify during decoding that an error occurred when received data does not match a valid symbol. A receiver may then determine with a high likelihood the actual transmitted data by matching the corrupted data to a valid symbol, which can be decoded to output the original data. In one simple ECC rule of construction, a single data bit to be transmitted may be transmitted as three redundant bits: a 0 becomes a 000, and a 1 becomes a 111. When a receiver receives the bits, it can determine whether the received bits define a valid symbol; a 101 would be an invalid symbol according to this example rule of construction. The receiver may then match the invalid symbol to the most similar valid symbol or otherwise determine the symbol that was most likely transmitted given the symbol that was received In this case, the invalid symbol 101 may be matched to the valid symbol 111, and the symbol decoded to a 1.
Error control codes are typically expressed in terms of their error control rate, a fractional number indicating the number of data bits associated with each transmitted bit. The exemplary ECC described above is known as ⅓ ECC: for every 1 data bit, 3 bits are transmitted. If more bits are transmitted for each data bit, the ECC can correct for more errors and the code is said to have a higher error control rate, even though the rate may be expressed as a smaller fraction. The error control rate may also be described as indicative of the “strength” of an ECC, as a stronger ECC (higher error control rate) can correct more errors.
A conventional wireless communication system, comprising a transmitter and receiver, may have one or more pre-selected error control codes with which it may transmit data. If the system has multiple ECCs available to it, it may switch between these depending on conditions in the channel and based on feedback from the receiver regarding errors that have been detected by the receiver. Because ECCs lower the amount of data transmitted by adding redundant bits to a transmission, typically the “weakest” available ECC—the ECC with the lowest number of redundant bits and, thus, the lowest ability to correct errors—that provides an acceptable level of error correction for the conditions of the environment is selected. As the conditions change and more errors are detected, a stronger available ECC may be selected. The ECCs available to a transmitter are pre-provisioned for a radio, in advance of communication.
In some cases, a concatenated code may be used that combines two separate ECCs. In a concatenated code, data may be encoded using a first ECC, then the encoded data may be encoded again using a second ECC. Interleaving may also be used between the two codes, such that bits from multiple symbols output from the first ECC are divided into new symbols before being encoded into the second ECC.
Depending on the cause of disruption, errors in bits encoded in a signal may appear to be random or may be correlated in some way. If the errors are correlated such that occurrence of an error indicates that, at a later time, another error is likely to occur, the channel is said to have “memory.”
Memory may exist for any number of reasons. For example, many environments create a phenomenon known as “multipath fading” at the receiver. When a transmitter broadcasts a signal to a receiver, the signal may arrive at the receiver via multiple paths and at multiple times depending on the length of the path. One of these paths may be a direct path to the receiver, and the signal may arrive at the receiver at a first time. A second path may include reflections off buildings, mountains, atmospheric layers, or other obstacles. The reflected signal may travel a longer distance to the receiver, arriving at a second time. In multi-path fading, the second signal received via the second path may interfere with the first signal received via the first path, causing errors in the first signal. Whether a second signal causes interference depends on the relative positions of the transmitter, receiver, and the obstacles from which signals reflect. When conditions causing interference exists, they are likely to persist for a period of time. During that period, a cluster, or burst, of errors may occur.